//初始化界面
$(function(){
	var accountList = null;
	var accountID = null;
	var supplierList = null;
	var supplierID = null;
	var personList = null;
	var personID = null;
	var ProjectSearch = null;
	var accountHeadMaxId = null; //获取最大的Id
	var accepId = null; //保存的主表id
	var url;
	var accountHeadID = 0;
	var preTotalPrice = 0; //前一次加载的金额
	var orgAccountHead = ""; //保存编辑前的名称
	var editIndex = undefined;
	var listTitle = ""; //单据标题
	var payTypeTitle = "";//收入 支出
	var organUrl = ""; //组织数据接口地址
	var amountNum = ""; //单据编号开头字符
	var itemType = true; //隐藏当前列
	var moneyType = true; //隐藏当前列
	var inOrOut = ""; //链接类型为收入或者支出

	getType();
	initSystemData_person(); //经手人数据
	initSelectInfo_person(); //经手人信息
	initSalesman(); //销售人员信息
	initSystemData_account(); //账户数据
	initSelectInfo_account(); //账户信息
	initSupplier(); //供应商
	initTableData();
	ininPager();
	initForm();
	bindEvent();//绑定操作事件
	$("#searchBtn").click();
	exportExcel();
	initSystemData_depot()
});
var depotString = "";
//导出EXCEL
function exportExcel() {
	$("#exprotBtn").off("click").on("click", function () {
		showEachDetails(0, 3000);
	});
}
function showEachDetails(pageNo, pageSize) {
	var beginTime = $.trim($("#searchBeginTime").val());
	var isaccount = $.trim($("#searchisaccount").val());
	var searchHandsPersonId = $.trim($("#searchHandsPersonId").val());
	var searchSalesman = $.trim($('#searchSalesman').combobox('getValue'));
	var endTime = $.trim($("#searchEndTime").val());
	if(beginTime) {
		beginTime = beginTime + ' 00:00:00';
	}
	if(endTime) {
		endTime = endTime + ' 23:59:59';
	}
	var  search=encodeURI(JSON.stringify({type: listType,billNo: $.trim($("#searchBillNo").val()),beginTime: beginTime,endTime: endTime,isaccount:isaccount,HandsPersonId:searchHandsPersonId,Salesman:searchSalesman}).toString());
	debugger
	window.location.href = "/accountHead/exportExcel?search="+search+"&currentPage="+pageNo+"&pageSize="+pageSize;
}
//初始化销售人员
function initSalesman() {
	$('#Salesman').combobox({
		url: "/person/getPersonByNumType?type=1",
		valueField: 'id',
		textField: 'name'
	});
	$('#searchSalesman').combobox({
		url: "/person/getPersonByNumType?type=1",
		valueField: 'id',
		textField: 'name'
	});


}
//根据单据名称获取类型
function getType(){
	listTitle = $("#tablePanel").prev().text();
	var supUrl = "/supplier/findBySelect_sup"; //供应商接口
	var cusUrl = "/supplier/findBySelect_cus"; //客户接口
	var retailUrl = "/supplier/findBySelect_retail"; //散户接口
	if(listTitle === "收入单列表"){
		listType = "收入";
		itemType = false; //显示当前列
		moneyType = true; //隐藏当前列
		payTypeTitle = "收入项目";
		inOrOut = "in";
		organUrl = cusUrl;
		amountNum = "SR";
	}
	else if(listTitle === "支出单列表"){
		listType = "支出";
		itemType = false; //显示当前列
		moneyType = true; //隐藏当前列
		payTypeTitle = "支出项目";
		inOrOut = "out";
		organUrl = supUrl;
		amountNum = "ZC";
	}
	else if(listTitle === "收款单列表"){
		listType = "收款";
		itemType = true; //隐藏当前列
		moneyType = false; //显示当前列
		payTypeTitle = "无标题";
		inOrOut = "";
		organUrl = cusUrl;
		amountNum = "SK";
	}
	else if(listTitle === "付款单列表"){
		listType = "付款";
		itemType = true; //隐藏当前列
		moneyType = false; //显示当前列
		payTypeTitle = "无标题";
		inOrOut = "";
		organUrl = supUrl;
		amountNum = "FK";
	}
	else if(listTitle === "转账单列表"){
		listType = "转账";
		itemType = true; //隐藏当前列
		moneyType = false; //显示当前列
		payTypeTitle = "无标题";
		inOrOut = "";
		organUrl = supUrl;
		amountNum = "ZZ";
	}
	else if(listTitle === "收预付款列表"){
		listType = "收预付款";
		itemType = true; //隐藏当前列
		moneyType = false; //显示当前列
		payTypeTitle = "无标题";
		inOrOut = "";
		organUrl = retailUrl;
		amountNum = "SYF";
	}
}
//获取账户信息
function initSystemData_account(){
	$.ajax({
		type:"get",
		url: "/account/getAccount",
		//设置为同步
		async:false,
		dataType: "json",
		success: function (res) {
			if(res && res.code === 200) {
				if(res.data) {
					accountList = res.data.accountList;
				}
			}
		}
	});
}
//获取账户信息
function initSelectInfo_account(){
	var options = "";
	if(accountList !=null)
	{
		options = "";
		for(var i = 0 ;i < accountList.length; i++)
		{
			var account = accountList[i];
			options += '<option value="' + account.id + '">' + account.name + '</option>';
		}
		$("#AccountId").empty().append(options);
	}
}

//初始化单位信息
function initSupplier(){
	$('#OrganId').combobox({
		url: organUrl,
		valueField:'id',
		textField:'supplier',
		formatter: function(row){
			var opts = $(this).combobox('options');
			if(row[opts.textField]!=="非会员") {
				return row[opts.textField];
			}
		},
		onSelect: function () {
			var myOptValue = $("#OrganId").combobox("getValue") ;

			debugger
			if (listType ==="收款"){
				$('#Linkedorder').combobox({
					url: "/depotHead/batchselect?type=出库&subType=销售&depotIds="+depotString+"&id=&OrganId="+myOptValue,
					valueField: 'id',
					textField: 'number',
					multiple: true
				});
			}else if (listType === "付款"){
				$('#Linkedorder').combobox({
					url: "/depotHead/batchselect?type=入库&subType=采购&depotIds="+depotString+"&id=&OrganId="+myOptValue,
					valueField: 'id',
					textField: 'number',
					multiple: true
				});
			}
		}
	});
}

//获取财务员
function initSystemData_person(){
	var type = "财务员";
	$.ajax({
		type:"get",
		url: "/person/getPersonByType",
		data: {
			type: type
		},
		//设置为同步
		async:false,
		dataType: "json",
		success: function (res) {
			if(res && res.code === 200) {
				personList = res.data.personList;
			}
		}
	});
}
//获取财务员
function initSelectInfo_person(){
	var options = '<option value="">请选择</option>';
	if(personList !=null)
	{
		for(var i = 0 ;i < personList.length;i++)
		{
			var person = personList[i];
			if(0 == i)
			{
				personID = person.id;
			}
			if(person.type=="财务员")
			{
				options += '<option value="' + person.id + '">' + person.name + '</option>';
			}
		}
		$("#HandsPersonId").empty().append(options);
		$("#searchHandsPersonId").empty().append(options);
	}
}

//防止表单提交重复
function initForm(){
	$('#accountHeadFM').form({
		onSubmit: function(){
			return false;
		}
	});
}

//初始化表格数据
function initTableData(){
	var organNameTitle = "";
	var organNameHidden = false;
	if(listType === "收入" || listType === "支出") {
		organNameTitle = "往来单位";
	}
	else if(listType === "收款") {
		organNameTitle = "付款单位";
	}
	else if(listType === "付款") {
		organNameTitle = "收款单位";
	}
	else if(listType === "收预付款") {
		organNameTitle = "付款会员";
	}
	if(listType === "转账") {
		organNameHidden = true;
	}
	$('#tableData').datagrid({
		//width:700,
		height:heightInfo,
		rownumbers: false,
		//动画效果
		animate:false,
		//选中单行
		singleSelect : true,
		collapsible:false,
		selectOnCheck:false,
		//fitColumns:true,
		//单击行是否选中
		//checkOnSelect : false,
		pagination: true,
		//交替出现背景
		striped : true,
		//loadFilter: pagerFilter,
		pageSize: 5,
		pageList: initPageNum,
		columns:[[
			{ field: 'id',width:35,align:"center",checkbox:true},
			{ title: '操作',field: 'op',align:"center",width:90,formatter:function(value,rec) {
					var str = '';
					var rowInfo = rec.id + 'AaBb' + rec.billno+ 'AaBb' + rec.billtime+ 'AaBb' + rec.remark
						+ 'AaBb' + rec.accountid+ 'AaBb' + rec.accountname + 'AaBb' + rec.organid + 'AaBb' + rec.organname
						+ 'AaBb' + rec.handspersonid + 'AaBb' + rec.handspersonname + 'AaBb' + rec.changeamount + 'AaBb' + rec.totalprice+ 'AaBb' + rec.isaccount+ 'AaBb' + rec.salesman+ 'AaBb' + rec.linkedorder;
					var orgId =  rec.organid ?  rec.organid : 0;
					str += '<img title="查看" src="/js/easyui-1.3.5/themes/icons/list.png" style="cursor: pointer;" onclick="showAccountHead(\'' + rowInfo + '\');"/>&nbsp;&nbsp;&nbsp;';
					/*str += '<img title="编辑" src="/js/easyui-1.3.5/themes/icons/pencil.png" style="cursor: pointer;" onclick="editAccountHead(\'' + rowInfo + '\');"/>&nbsp;&nbsp;&nbsp;';
					str += '<img title="删除" src="/js/easyui-1.3.5/themes/icons/edit_remove.png" style="cursor: pointer;" onclick="deleteAccountHead('+ rec.id +',' + orgId +',' + rec.totalprice + ');"/>';*/
					return str;
				}
			},
			{ field: 'organid',width:5, hidden:true},
			{ title: organNameTitle,field: 'organname',width:140,hidden:organNameHidden},
			{ title: '单据编号',field: 'billno',width:140},
			{ title: '财务经手人',field: 'handspersonname',width:80},
			{ title: '销售经手人',field: 'salesmanname',width:80},
			{ title: '单据时间 ',field: 'billtime',width:140},
			{ title: '合计',field: 'totalprice',width:80},
			{ title: '是否到账',field: 'isaccount',width:80},
			{ title: '备注',field: 'remark',width:100}
		]],
		toolbar:[
			/*{
				id:'addAccountHead',
				text:'增加',
				iconCls:'icon-add',
				handler:function()
				{
					addAccountHead();
				}
			},
			{
				id:'deleteAccountHead',
				text:'删除',
				iconCls:'icon-remove',
				handler:function()
				{
					batDeleteAccountHead();
				}
			}*/
		],
		onLoadError:function()
		{
			$.messager.alert('页面加载提示','页面加载异常，请稍后再试！','error');
			return;
		}
	});
	dgResize();
}

//初始化表格数据-明细列表-编辑状态
function initTableData_account(type,TotalPrice){
	$('#accountData').datagrid({
		height:280,
		rownumbers: false,
		//动画效果
		animate:false,
		//选中单行
		singleSelect : true,
		collapsible:false,
		selectOnCheck:false,
		//单击行是否选中
		checkOnSelect : false,
		pagination: false,
		//交替出现背景
		striped : true,
		showFooter: true,
		//loadFilter: pagerFilter,
		onClickRow: onClickRow,
		columns:[[
			{ field: 'Id',width:35,align:"center",checkbox:true},
			{ title: payTypeTitle,field: 'InOutItemId',width:230,hidden:itemType,
				formatter:function(value,row,index){
					return row.InOutItemName;
				},
				editor:{
					type:'combobox',
					options:{
						valueField:'Id',
						textField:'InOutItemName',
						method:'get',
						url: "/inOutItem/findBySelect?type=" + inOrOut
					}
				}
			},
			{ title: '账户名称',field: 'AccountId',width:230,hidden:moneyType,
				formatter:function(value,row,index){
					return row.AccountName;
				},
				editor:{
					type:'combobox',
					options:{
						valueField:'Id',
						textField:'AccountName',
						method:'get',
						url: "/account/findBySelect"
					}
				}
			},
			{ title: '金额',field: 'EachAmount',editor:'validatebox',width:70},
			{ title: '备注',field: 'Remark',editor:'validatebox',width:150}
		]],
		toolbar:[
			{
				id:'append',
				text:'新增',
				iconCls:'icon-add',
				handler:function()
				{
					append(); //新增
				}
			},
			{
				id:'delete',
				text:'删除',
				iconCls:'icon-remove',
				handler:function()
				{
					removeit(); //删除
				}
			},
			{
				id:'reject',
				text:'撤销',
				iconCls:'icon-undo',
				handler:function()
				{
					reject(); //撤销
				}
			}
		],
		onLoadError:function()
		{
			$.messager.alert('页面加载提示','页面加载异常，请稍后再试！','error');
			return;
		}
	});
	$.ajax({
		type:"get",
		url: '/accountItem/getDetailList',
		data: {
			headerId: accountHeadID
		},
		dataType: "json",
		success: function (res) {
			if(res && res.code === 200) {
				var data = res.data;
				var EachAmount = 0;
				if(type === "edit") {
					EachAmount = TotalPrice;
				}
				var array = [];
				array.push({
					"EachAmount": EachAmount
				});
				data.footer = array;
				$("#accountData").datagrid('loadData',data);
			}
		},
		error:function() {
			$.messager.alert('查询提示','查询数据后台异常，请稍后再试！','error');
		}
	});
}


//初始化表格数据-明细列表-查看状态
function initTableData_account_show(TotalPrice){
	$('#accountDataShow').datagrid({
		height:280,
		rownumbers: true,
		//动画效果
		animate:false,
		//选中单行
		singleSelect : true,
		collapsible:false,
		selectOnCheck:false,
		//单击行是否选中
		checkOnSelect : false,
		pagination: false,
		//交替出现背景
		striped : true,
		showFooter: true,
		//loadFilter: pagerFilter,
		onClickRow: onClickRow,
		columns:[[
			{ title: payTypeTitle, field: 'InOutItemName', width:230, hidden:itemType},
			{ title: '账户名称', field: 'AccountName', width:230, hidden:moneyType},
			{ title: '金额',field: 'EachAmount',width:70},
			{ title: '备注',field: 'Remark',width:150}
		]],
		onLoadError:function()
		{
			$.messager.alert('页面加载提示','页面加载异常，请稍后再试！','error');
			return;
		}
	});
	$.ajax({
		type:"get",
		url: '/accountItem/getDetailList',
		data: {
			headerId: accountHeadID
		},
		dataType: "json",
		success: function (res) {
			if(res && res.code === 200) {
				var data = res.data;
				var EachAmount = TotalPrice;
				var array = [];
				array.push({
					"EachAmount": EachAmount
				});
				data.footer = array;
				$("#accountDataShow").datagrid('loadData', data);
			}
		},
		error:function() {
			$.messager.alert('查询提示','查询数据后台异常，请稍后再试！','error');
		}
	});
}


//分页信息处理
function ininPager(){
	try
	{
		var opts = $("#tableData").datagrid('options');
		var pager = $("#tableData").datagrid('getPager');
		pager.pagination({
			onSelectPage:function(pageNum, pageSize)
			{
				opts.pageNumber = pageNum;
				opts.pageSize = pageSize;
				pager.pagination('refresh',
					{
						pageNumber:pageNum,
						pageSize:pageSize
					});
				showAccountHeadDetails(pageNum,pageSize);
			}
		});
	}
	catch (e)
	{
		$.messager.alert('异常处理提示',"分页信息异常 :  " + e.name + ": " + e.message,'error');
	}
}

//删除财务信息
function deleteAccountHead(accountHeadID, thisOrganId, totalPrice){
	$.messager.confirm('删除确认','确定要删除此财务信息吗？',function(r)
	{
		if (r)
		{
			$.ajax({
				type:"post",
				url: "/accountHead/batchDeleteAccountHeadByIds",
				dataType: "json",
				data:{
					ids: accountHeadID
				},
				success: function (res) {
					if(res && res.code == 200) {
						$("#searchBtn").click();
					} else {
						if(res && res.code == 601){
							var jsondata={};
							jsondata.ids=accountHeadID;
							jsondata.deleteType='2';
							var type='single';
							batDeleteAccountHeadForceConfirm(res,"/accountHead/batchDeleteAccountHeadByIds",jsondata,type);
						}else if(res && res.code == 600){
							$.messager.alert('删除提示', res.msg, 'error');
							return;
						}else{
							$.messager.alert('删除提示', '删除信息失败，请稍后再试！', 'error');
							return;
						}
					}
				},
				//此处添加错误处理
				error:function() {
					$.messager.alert('删除提示','删除财务信息异常，请稍后再试！','error');
					return;
				}
			});

			//更新会员的预收款信息
			if(listType === "收预付款"){
				$.ajax({
					type:"post",
					url: "/supplier/updateAdvanceIn",
					dataType: "json",
					data:{
						supplierId: thisOrganId, //会员id
						advanceIn: 0-totalPrice  //删除时同时删除用户的预付款信息
					},
					success: function(res){
						if(res && res.code === 200) {
							//保存会员预收款成功
						}
					},
					error: function(){
						$.messager.alert('提示','保存信息异常，请稍后再试！','error');
						return;
					}
				});
			}
		}
	});
}

//批量删除财务信息
function batDeleteAccountHead(){
	var row = $('#tableData').datagrid('getChecked');
	if(row.length == 0)
	{
		$.messager.alert('删除提示','没有记录被选中！','info');
		return;
	}
	if(row.length > 0)
	{
		$.messager.confirm('删除确认','确定要删除选中的' + row.length + '条财务信息吗？',function(r)
		{
			if (r)
			{
				var ids = "";
				for(var i = 0;i < row.length; i ++) {
					if(i == row.length-1)
					{
						ids += row[i].id;
						break;
					}
					ids += row[i].id + ",";
				}

				//批量删除
				$.ajax({
					type:"post",
					url: "/accountHead/batchDeleteAccountHeadByIds",
					dataType: "json",
					async :  false,
					data: ({
						ids : ids
					}),
					success: function (res) {
						if(res && res.code === 200) {
							$("#searchBtn").click();
							$(":checkbox").attr("checked", false);
						} else {
							if(res && res.code == 601){
								var jsondata={};
								jsondata.ids=ids;
								jsondata.deleteType='2';
								var type='batch';
								batDeleteAccountHeadForceConfirm(res,"/accountHead/batchDeleteAccountHeadByIds",jsondata,type);
							}else if(res && res.code == 600){
								$.messager.alert('删除提示', res.msg, 'error');
								return;
							}else{
								$.messager.alert('删除提示', '删除信息失败，请稍后再试！', 'error');
								return;
							}
						}
					},
					//此处添加错误处理
					error:function() {
						$.messager.alert('删除提示','删除财务信息异常，请稍后再试！','error');
						return;
					}
				});
				//批量更新会员的预收款信息
				for(var i = 0;i < row.length; i ++) {
					if(listType === "收预付款"){
						$.ajax({
							type:"post",
							url: "/supplier/updateAdvanceIn",
							dataType: "json",
							data:{
								supplierId: row[i].organid, //会员id
								advanceIn: 0 - row[i].totalprice  //删除时同时删除用户的预付款信息
							},
							success: function(res){
								if(res && res.code === 200) {
									//保存会员预收款成功
								}
							},
							error: function(){
								$.messager.alert('提示','保存信息异常，请稍后再试！','error');
								return;
							}
						});
					}
				}
			}
		});
	}
}
/**
 * 确认强制删除
 * */
function batDeleteAccountHeadForceConfirm(res,url,jsondata) {
	$.messager.confirm('删除确认', res.msg, function (r) {
		if (r) {
			$.ajax({
				type: "post",
				url: url,
				dataType: "json",
				data: (jsondata),
				success: function (res) {
					if(res && res.code == 200) {
						$("#searchBtn").click();
						if(type=='batch'){
							$(":checkbox").attr("checked", false);
						}
					}else if(res && res.code == 600){
						$.messager.alert('删除提示', res.msg, 'error');
						return;
					}else {
						$.messager.alert('删除提示','删除财务信息异常，请稍后再试！','error');
						return;
					}
				},
				//此处添加错误处理
				error: function () {
					$.messager.alert('删除提示','删除财务信息异常，请稍后再试！','error');
					return;
				}
			});
		}
	});
}

//初始化系统基础信息
function initSystemData_depot() {
	$.ajax({
		type: "get",
		url: "/depot/getAllList",
		//设置为同步
		async: false,
		dataType: "json",
		success: function (res) {
			if (res && res.code === 200) {
				depotList = res.data;
				if (depotList != null) {
					for (var i = 0; i < depotList.length; i++) {
						var depot = depotList[i];
						var config = getSystemConfig();
						if (config && config.depotFlag == "1") {
							if (userdepot != null) {
								if (userdepot.indexOf("[" + depot.id + "]") != -1) {
									if (depot.isDefault) {
										defDepotId = depot.id;
									}
									depotString = depotString + depot.id + ",";
								}
							}
						} else {
							if (depot.isDefault) {
								defDepotId = depot.id;
							}
							depotString = depotString + depot.id + ",";
						}
						if (depot.type === 1) {
							depotString = depotString + depot.id + ",";
						}
					}
					depotString = depotString.substring(0, depotString.length - 1);
				}
			} else {
				$.messager.alert('提示', '查找系统基础信息异常,请与管理员联系！', 'error');
				return;
			}
		}
	});
}
//增加
function addAccountHead(){
	debugger

	if (listType ==="收款"){
		$('#Linkedorder').combobox({
			url: "/depotHead/batchselect?type=出库&subType=销售&depotIds="+depotString+"&id=",
			valueField: 'id',
			textField: 'number',
			multiple: true
		});
	}else if (listType === "付款"){
		$('#Linkedorder').combobox({
			url: "/depotHead/batchselect?type=入库&subType=采购&depotIds="+depotString+"&id=",
			valueField: 'id',
			textField: 'number',
			multiple: true
		});
	}

	if(checkPower()){
		return;
	}
	$('#accountHeadFM').form('clear');
	var thisDateTime = getNowFormatDateTime(); //当前时间
	$("#BillTime").val(thisDateTime);
	var thisNumber = getNowFormatDateNum(); //根据时间生成编号
	$("#BillNo").val(amountNum + thisNumber).focus();
	var addTitle = listTitle.replace("列表","信息");
	$('#accountHeadDlg').dialog('open').dialog('setTitle','<img src="/js/easyui-1.3.5/themes/icons/edit_add.png"/>&nbsp;增加' + addTitle);
	$(".window-mask").css({ width: webW ,height: webH});

	orgAccountHead = "";
	accountHeadID = 0;
	initTableData_account("add"); //明细列表
	reject(); //撤销下、刷新材料列表
	url = '/accountHead/add';

	//收预付款单据支持刷卡功能
	if(listType == "收预付款") {
		//当会员卡号长度超过10位后，自动点击下拉框，用于兼容刷卡器
		$("#OrganId").next().find("input").off("keyup").on("keyup",function(){
			if($(this).val().length === 10){
				setTimeout(function(){
					$(".combo-panel .combobox-item-selected").click();
				},500);
			}
		});
	}
}

//编辑信息
function editAccountHead(accountHeadTotalInfo){

	var accountHeadInfo = accountHeadTotalInfo.split("AaBb");

	if (listType ==="收款"){
		$('#Linkedorder').combobox({
			url: "/depotHead/batchselect?type=出库&subType=销售&depotIds="+depotString+"&id="+accountHeadInfo[0]+"&OrganId="+accountHeadInfo[6],
			valueField: 'id',
			textField: 'number',
			multiple: true
		});
	}else if (listType === "付款"){
		$('#Linkedorder').combobox({
			url: "/depotHead/batchselect?type=入库&subType=采购&depotIds="+depotString+"&id="+accountHeadInfo[0]+"&OrganId="+accountHeadInfo[6],
			valueField: 'id',
			textField: 'number',
			multiple: true
		});
	}
	$("#BillNo").val(accountHeadInfo[1]);
	$("#BillTime").val(accountHeadInfo[2]);
	$("#Remark").val(accountHeadInfo[3]);
	$("#AccountId").val(accountHeadInfo[4]);
	$('#OrganId').combobox('setValue', accountHeadInfo[6]);
	$("#HandsPersonId").val(accountHeadInfo[8]);
	if (accountHeadInfo[10] ==="undefined"){
	}else {
		$("#ChangeAmount").val(accountHeadInfo[10]);
	}

	var TotalPrice = accountHeadInfo[11];
	preTotalPrice = accountHeadInfo[11]; //记录前一次合计金额，用于收预付款
	$('#isaccount').val(accountHeadInfo[12]);
	$('#Salesman').combobox('setValue', accountHeadInfo[13]);
	var LinkedorderArray = [];
	if (accountHeadInfo[14] ==="undefined"){
	}else {
		var arr =  accountHeadInfo[14].split(",");

		for (var i = 0; i < arr.length; i++) {
			if (arr[i]) {
				LinkedorderArray.push(arr[i].replace("<", "").replace(">", ""));
			}
		}
	}

	$("#Linkedorder").combobox('setValues', LinkedorderArray);

	var editTitle = listTitle.replace("列表","信息");
	$('#accountHeadDlg').dialog('open').dialog('setTitle','<img src="' + '/js/easyui-1.3.5/themes/icons/pencil.png"/>&nbsp;编辑' + editTitle);
	$(".window-mask").css({ width: webW ,height: webH});
	accountHeadID = accountHeadInfo[0];

	initTableData_account("edit",TotalPrice); //明细列表
	reject(); //撤销下、刷新列表
	url = '/accountHead/update?id=' + accountHeadInfo[0];
}

//查看信息
function showAccountHead(accountHeadTotalInfo){
	var accountHeadInfo = accountHeadTotalInfo.split("AaBb");
	$("#BillNoShow").text(accountHeadInfo[1]);
	$("#BillTimeShow").text(accountHeadInfo[2]);
	$("#RemarkShow").text(accountHeadInfo[3]);
	$("#AccountIdShow").text(accountHeadInfo[5]);
	$('#OrganIdShow').text(accountHeadInfo[7]);
	$("#HandsPersonIdShow").text(accountHeadInfo[9]);
	$("#ChangeAmountShow").text(accountHeadInfo[10].replace("undefined","0"));
	$("#isaccountShow").text(accountHeadInfo[12]);
	$("#salesmanShow").text(accountHeadInfo[13]);
	var TotalPrice = accountHeadInfo[11];
	var showTitle = listTitle.replace("列表","信息");
	$('#accountHeadDlgShow').dialog('open').dialog('setTitle','<img src="/js/easyui-1.3.5/themes/icons/list.png"/>&nbsp;查看' + showTitle);
	$(".window-mask").css({ width: webW ,height: webH});

	accountHeadID = accountHeadInfo[0];
	initTableData_account_show(TotalPrice); //明细列表-查看状态
}

//绑定操作事件
function bindEvent(){
	//搜索处理
	$("#searchBtn").unbind().bind({
		click:function()
		{
			showAccountHeadDetails(1,initPageSize);
			var opts = $("#tableData").datagrid('options');
			var pager = $("#tableData").datagrid('getPager');
			opts.pageNumber = 1;
			opts.pageSize = initPageSize;
			pager.pagination('refresh', {
				pageNumber:1,
				pageSize:initPageSize
			});
		}
	});

	//重置按钮
	$("#searchResetBtn").unbind().bind({
		click:function(){
			$("#searchBillNo").val("");
			$("#searchBeginTime").val("");
			$("#searchEndTime").val("");
			//加载完以后重新初始化
			$("#searchBtn").click();
		}
	});

	//保存信息
	$("#saveAccountHead").off("click").on("click", function () {
		if(!$('#accountHeadFM').form('validate')){
			return;
		} else {
			if (listTitle === "收入单列表") {
				if (!$('#AccountId').val()) {
					$.messager.alert('提示', '请选择收款账户！', 'warning');
					return;
				}
				if (!$('#OrganId').combobox('getValue')) {
					$.messager.alert('提示', '请选择往来单位！', 'warning');
					return;
				}
				if (!$('#HandsPersonId').val()) {
					$.messager.alert('提示', '请选择经手人！', 'warning');
					return;
				}
			}
			else if (listTitle === "支出单列表") {
				if (!$('#AccountId').val()) {
					$.messager.alert('提示', '请选择付款账户！', 'warning');
					return;
				}
				if (!$('#OrganId').combobox('getValue')) {
					$.messager.alert('提示', '请选择往来单位！', 'warning');
					return;
				}
				if (!$('#HandsPersonId').val()) {
					$.messager.alert('提示', '请选择经手人！', 'warning');
					return;
				}
			}
			else if (listTitle === "收款单列表") {
				if (!$('#OrganId').combobox('getValue')) {
					$.messager.alert('提示', '请选择付款单位！', 'warning');
					return;
				}
				debugger
				if (!$('#HandsPersonId').val()) {
					if ($('#HandsPersonId').val()!=null){
						if ($('#HandsPersonId').val()===""){
							$.messager.alert('提示', '请选择财务经手人！', 'warning');
							return;
						}
					}
					$.messager.alert('提示', '请选择财务经手人！', 'warning');
					return;
				}
				if ($('#Salesman').combobox('getValues')!=null) {
					if ($('#Salesman').combobox('getValues')[0] === ""){
						$.messager.alert('提示', '请选择销售经手人！', 'warning');
						return;
					}
				}

			}
			else if (listTitle === "付款单列表") {
				if (!$('#OrganId').combobox('getValue')) {
					$.messager.alert('提示', '请选择收款单位！', 'warning');
					return;
				}
				if (!$('#HandsPersonId').val()) {
					$.messager.alert('提示', '请选择经手人！', 'warning');
					return;
				}
			}
			else if (listTitle === "转账单列表") {
				if (!$('#HandsPersonId').val()) {
					$.messager.alert('提示', '请选择经手人！', 'warning');
					return;
				}
				if (!$('#AccountId').val()) {
					$.messager.alert('提示', '请选择付款账户！', 'warning');
					return;
				}
			}
			else if (listTitle === "收预付款列表") {
				if (!$('#HandsPersonId').val()) {
					$.messager.alert('提示', '请选择经手人！', 'warning');
					return;
				}
				if (!$('#OrganId').combobox('getValue')) {
					$.messager.alert('提示', '请选择付款会员！', 'warning');
					return;
				}
			}
			var OrganId = null;
			var ChangeAmount = $.trim($("#ChangeAmount").val());
			var TotalPrice = $("#accountHeadFM .datagrid-footer [field='EachAmount'] div").text();
			if (listType !== "转账") {
				OrganId = $('#OrganId').combobox('getValue');
			}
			if (listType === "支出" || listType === "转账") {
				//支出为负数
				ChangeAmount = 0 - ChangeAmount;
			}
			if (listType === "支出" || listType === "付款" || listType === "转账") {
				//支出和付款为负数
				TotalPrice = 0 - TotalPrice;
			}
			//更新会员的预收款信息
			if (listType === "收预付款") {
				var advanceIn = 0; //预付款金额
				if (accountHeadID) {
					advanceIn = TotalPrice - preTotalPrice;  //修改时，预付款=合计金额-加载金额
				}
				else {
					advanceIn = TotalPrice; //新增时，预付款=合计金额
				}
				$.ajax({
					type: "post",
					url: "/supplier/updateAdvanceIn",
					dataType: "json",
					data: {
						supplierId: OrganId,
						advanceIn: advanceIn
					},
					success: function (res) {
						if (res && res.code === 200) {
							//保存会员预收款成功
						}
					},
					error: function () {
						$.messager.alert('提示', '保存信息异常，请稍后再试！', 'error');
						return;
					}
				});
			}

			var LinkedorderStr="";
			var Linkedorder = $('#Linkedorder').combobox('getValues').toString(); //销售人员
			if(Linkedorder) {
				var LinkedorderArray = Linkedorder.split(",");
				for (var i = 0; i < LinkedorderArray.length; i++) {
					if (i === LinkedorderArray.length - 1) {
						LinkedorderStr += LinkedorderArray[i];
					}
					else {
						LinkedorderStr += LinkedorderArray[i] + ",";
					}
				}
			}
			var Salesmansrc = "";
			var Salesman = $('#Salesman').combobox('getValues').toString(); //销售人员
			if(Salesman) {
				var SalesmanArray = Salesman.split(",");
				for (var i = 0; i < SalesmanArray.length; i++) {
					if (i === SalesmanArray.length - 1) {
						Salesmansrc +=SalesmanArray[i];
					}
					else {
						Salesmansrc += SalesmanArray[i] + ",";
					}
				}
			}
			debugger
			//保存单位信息
			$.ajax({
				type: "post",
				url: url,
				dataType: "json",
				async: false,
				data: ({
					info : JSON.stringify({
						Type: listType,
						BillNo: $.trim($("#BillNo").val()),
						BillTime: $.trim($("#BillTime").val()),
						AccountId: $.trim($("#AccountId").val()),
						ChangeAmount: ChangeAmount, //付款/收款/优惠/实付
						TotalPrice: TotalPrice, //合计
						OrganId: OrganId,
						HandsPersonId: $.trim($("#HandsPersonId").val()),
						Isaccount: $.trim($("#isaccount").val()),
						Salesman: Salesmansrc,
						Linkedorder: LinkedorderStr,
						Remark: $.trim($("#Remark").val())
					})
				}),
				success: function (tipInfo) {
					if (tipInfo) {
						//保存明细记录
						if (accountHeadID == 0) {
							getMaxId(); //查找最大的Id
							accept(accountHeadMaxId, listType); //新增
						}
						else {
							accept(accountHeadID, listType); //修改
						}

						$('#accountHeadDlg').dialog('close');
						var opts = $("#tableData").datagrid('options');
						showAccountHeadDetails(opts.pageNumber, opts.pageSize);
					}
					else {
						$.messager.show({
							title: '错误提示',
							msg: '保存信息失败，请稍后重试!'
						});
					}
				},
				//此处添加错误处理
				error: function () {
					$.messager.alert('提示', '保存信息异常，请稍后再试！', 'error');
					return;
				}
			});
		}
	});

	//打印单据
	$("#printAccountHeadShow").off("click").on("click",function(){
		var tableString = $("#accountHeadDlgShow").html();
		localStorage.setItem("tableString",tableString);
		window.open("../../js/print/print_form.html","location:No;status:No;help:No;dialogWidth:800px;dialogHeight:600px;scroll:auto;");
	});

	//初始化键盘enter事件
	$(document).keydown(function(event)
	{
		//兼容 IE和firefox 事件
		var e = window.event || event;
		var k = e.keyCode||e.which||e.charCode;
		//兼容 IE,firefox 兼容
		var obj = e.srcElement ? e.srcElement : e.target;
		//绑定键盘事件为 id是指定的输入框才可以触发键盘事件 13键盘事件 ---遗留问题 enter键效验 对话框会关闭问题
		if(k == "13"&&(obj.id=="BillNo"||obj.id=="BillTime"))
		{
			$("#saveAccountHead").click();
		}
		//搜索按钮添加快捷键
		if(k == "13"&&(obj.id=="searchBillNo"))
		{
			$("#searchBtn").click();
		}
	});
}

function showAccountHeadDetails(pageNo,pageSize){
	var beginTime = $.trim($("#searchBeginTime").val());
	var isaccount = $.trim($("#searchisaccount").val());
	var searchHandsPersonId = $.trim($("#searchHandsPersonId").val());
	var searchSalesman = $.trim($('#searchSalesman').combobox('getValue'));
	var endTime = $.trim($("#searchEndTime").val());
	if(beginTime) {
		beginTime = beginTime + ' 00:00:00';
	}
	if(endTime) {
		endTime = endTime + ' 23:59:59';
	}
	$.ajax({
		type:"get",
		url: "/accountHead/list",
		dataType: "json",
		data: ({
			search: JSON.stringify({
				type: listType,
				billNo: $.trim($("#searchBillNo").val()),
				beginTime: beginTime,
				endTime: endTime,
				isaccount:isaccount,
				HandsPersonId:searchHandsPersonId,
				Salesman:searchSalesman

			}),
			currentPage: pageNo,
			pageSize: pageSize
		}),
		success: function (res) {
			if(res && res.code === 200){
				if(res.data && res.data.page) {
					$("#tableData").datagrid('loadData', res.data.page);
				}
			}
		},
		//此处添加错误处理
		error:function() {
			$.messager.alert('查询提示','查询数据后台异常，请稍后再试！','error');
			return;
		}
	});
}

//自动计算事件
function autoReckon() {
	//延时绑定事件
	setTimeout(function(){
		var body =$("#accountHeadFM .datagrid-body");
		var footer =$("#accountHeadFM .datagrid-footer");
		var input = ".datagrid-editable-input";

		//修改金额，自动计算单价和合计
		body.find("[field='EachAmount']").find(input).off("keyup").on("keyup",function(){
			var TotalPrice = 0;
			var EachAmount =$(this).val()-0; //金额
			body.find("[field='EachAmount']").each(function(){
				if($(this).find("div").text()!==""){
					TotalPrice = TotalPrice + parseFloat($(this).find("div").text().toString());
				}
			});
			TotalPrice = TotalPrice + EachAmount;
			footer.find("[field='EachAmount']").find("div").text((TotalPrice).toFixed(2));
		});
	},500);
}

//结束编辑
function endEditing() {
	var edField = "";
	if(!itemType){
		edField = "InOutItemId";
		edName = "InOutItemName";
	}
	else {
		edField = "AccountId";
		edName = "AccountName";
	}
	if (editIndex == undefined) { return true }
	if ($('#accountData').datagrid('validateRow', editIndex)) {
		var ed = $('#accountData').datagrid('getEditor', {index: editIndex, field: edField});
		var textName = $(ed.target).combobox('getText');
		$('#accountData').datagrid('getRows')[editIndex][edName] = textName;
		$('#accountData').datagrid('endEdit', editIndex);
		editIndex = undefined;
		return true;
	} else {
		return false;
	}
}
//单击
function onClickRow(index) {
	if (editIndex != index) {
		if (endEditing()) {
			$('#accountData').datagrid('selectRow', index)
				.datagrid('beginEdit', index);
			editIndex = index;
			autoReckon();
		} else {
			$('#accountData').datagrid('selectRow', editIndex);
		}
	}
}
//新增
function append()  {
	if (endEditing()) {
		$('#accountData').datagrid('appendRow', {});
		editIndex = $('#accountData').datagrid('getRows').length - 1;
		$('#accountData').datagrid('selectRow', editIndex).datagrid('beginEdit', editIndex);
		autoReckon();
	}
}
//删除
function removeit() {
	if (editIndex == undefined) { return }
	$('#accountData').datagrid('cancelEdit', editIndex)
		.datagrid('deleteRow', editIndex);
	editIndex = undefined;
}
//撤销
function reject() {
	$('#accountData').datagrid('rejectChanges');
	editIndex = undefined;
}
//判断
function CheckData() {
	var row = $('#accountData').datagrid('getRows');
	var totalRowNum = "";
	for (var i = 0; i < row.length; i++) {
		if(!itemType){
			if (row[i].InOutItemId == "") {
				totalRowNum += (i + 1) + "、";
			}
		}
		else{
			if (row[i].AccountId == "") {
				totalRowNum += (i + 1) + "、";
			}
		}
	}
	if (totalRowNum != "") {
		var totalRowNum = totalRowNum.substring(0, totalRowNum.length - 1);
		$.messager.alert('提示',"第" + totalRowNum + "行数据填写不完整！",'info');
		return false;
	}
	return true;
}
//保存
function accept(accepId,listType) {
	append();
	removeit();
	if ($("#accountData").datagrid('getChanges').length) {
		if (!CheckData())
			return false;
		var inserted = $("#accountData").datagrid('getChanges', "inserted");
		var deleted = $("#accountData").datagrid('getChanges', "deleted");
		var updated = $("#accountData").datagrid('getChanges', "updated");
		$.ajax({
			type: "post",
			url: "/accountItem/saveDetials",
			data: {
				inserted: JSON.stringify(inserted),
				deleted: JSON.stringify(deleted),
				updated: JSON.stringify(updated),
				headerId: accepId,
				listType: listType
			},
			success: function (tipInfo)
			{
				if (tipInfo) {
					$.messager.alert('提示','保存成功！','info');
				}
				else
					$.messager.alert('提示','保存失败！','error');

			},
			error: function (XmlHttpRequest, textStatus, errorThrown)
			{
				$.messager.alert('提示',XmlHttpRequest.responseText,'error');
			}
		});
	}
	if (endEditing()) {
		$('#accountData').datagrid('acceptChanges');
	}
}
//获取MaxId
function getMaxId(){
	var accountHeadMax=null;
	$.ajax({
		type:"get",
		url: "/accountHead/getMaxId",
		//设置为同步
		async:false,
		dataType: "json",
		success: function (res) {
			if(res && res.code === 200) {
				if(res.data) {
					accountHeadMax = res.data.maxId;
				}
			}
		}
	});

	if(accountHeadMax !=null) {
		accountHeadMaxId=accountHeadMax;
	}
}